package modelo

import exepciones.NoMoreZombiesException
import exepciones.SeMurioLaPlantaException
import exepciones.perdisteException
import org.uqbar.commons.utils.Observable

@Observable
class Planta extends Atacante implements Cloneable{
	
	@Property TipoDeTerreno tipo//composite para comprobar tipo de terreno para plantar se va a fijar si jardin terreno es igual a this terreno
	
	override toString(){
		return nombre
		
	}
	
	override cambiaObjetivo(Atacante atac, Observer obs) {
	    obs.ahoraNoHayMasZombies
	}

	
	def agregateAJugador(Jugador jugador) {
		tipo.agregaPlantaAJardinZenDE(jugador, this)
	}
	
	override postMorten(Observer obs) {
		obs.desplantame(this)
	}
	
	def clonate() {
		var Planta plantin=this.clone as Planta
		plantin.resistencia=this.resistencia
		return plantin
		
	}
	
	def plantateEn(Jardin jardin, Terreno fila) {
		tipo.plantameEn(fila, this)
		
	}
	
	
}